package com.liyiruo.tx.service.main3;

import com.liyiruo.tx.mapper.TableAMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

/**
 * 数据a1存储成功，数据b1和b2没有存储。
 * 由于testMain没有声明事务，testB有声明事务且传播行为是REQUIRED，
 * 所以在执行testB时会自己新建一个事务（如果当前没有事务，则自己新建一个事务），
 * testB抛出异常则只有testB中的操作发生了回滚，也就是b1的存储会发生回滚，
 * 但a1数据不会回滚，所以最终a1数据存储成功，b1和b2数据没有存储
 * @author liyiruo
 * @Description
 * @Date 2022/2/18 下午5:11
 */
@Service
public class TestMain3 {

    @Autowired
    private TableAMapper tableAMapper;
    @Autowired
    private TestBe testBe3;

    public void testMain() {
        tableAMapper.addTableA();  //调用A入参a1
        testBe3.testB();    //调用testB
    }
}
